const express = require('express');
const path = require('path');
const tutu = require('./data/tutu');
const app = express();

// let tutu = {name:'tutu',age:18,hobby:'haiguangxu'};//当数据量比较大
// 路由  请求get
app.get('/index',(req,res)=>{
    /* 
    req 全称request 
    res 全称 response

    get请求传参  在路径上进行传参 
    实际上有两种
    ①query   url?key=value&key=value&key=value
    ②params  url/参数/参数 在服务器路径中需要有占位符接收
    
    */
    //req.query 获取get请求的query参数    

    /* 
    req.body 获取post请求请求体中参数（必须引入中间件才能解析）
    req.cookie  获取cookie
    req.headers 指定的请求头信息
    
    res 对象 response
    res.end() 返回响应
    res.download()返回响应，浏览器自动下载指定文件
    res.sendFile()返回响应，在浏览器中指定打开文件  注：sendFile中必须是绝对路径
    res.json() 返回json数据 参数为对象
    res.redirect('https://baidu.com');重定向  参数路径
    */
//    console.log(req.query);
//    console.log(req.headers);

//    res.download('./public/test.xls');
    // res.sendFile(path.join(__dirname,'public','index.html'));
    // res.json(tutu);
    // 重定向
    // res.redirect('https://baidu.com');
    // res.send() 返回响应  根据响应内容自动设置响应头
    // res.status() 设置状态码
    // res.send('武烁');
    // 
    // res.setHeader('Content-Type','text/plain;charset=utf-8');
    res.set({
        'Content-Type':'text/plain;charset=utf-8'
    })
    // res.get()去读取响应头中的数据，但是参数为响应头的中的key值
    console.log(res.get('Content-Type'));
    res.end('武烁');

    res.end();
   
})

// 服务器可以写多个路由
// :xxx/:xx 占位符
app.get('/tutu/:hobby/:xiguan',(req,res)=>{
    // get传参的方式params传参
    // http://localhost:8080/tutu/yangniu
    console.log(req.params);
    res.end('男儿本色！！')
})

app.listen(8080,err=>{
    if(!err) console.log('serve');
    else console.log(err);
})


/* 
启动项目的步骤：
git网址
git clone  网址  这时候你克隆下来的项目 一般是没有node_modules
npm i   / npm install 安装package.json中各种依赖 就会下载node_modules中的包
看package.json中的script文件中的配置的指令

一个端口号只能有一个运行状态的服务器  
启动当前项目端口号8080已经占用就不能在8080端口号上启动服务器


*/